package com.sunlee.admin.api.module.sys.service;

import com.sunlee.admin.api.module.sys.dto.SysDeptDTO;
import com.sunlee.admin.api.module.sys.entity.SysDeptEntity;
import com.sunlee.common.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 部门管理
 *
 * @author sunlee
 */
public interface SysDeptService extends BaseService<SysDeptEntity> {

    /**
     * 查询部门信息
     *
     * @param params 查询参数
     * @return 部门列表
     */
    List<SysDeptDTO> list(Map<String, Object> params);

    /**
     * 查询部门信息
     *
     * @param id 主键ID
     * @return 部门信息
     */
    SysDeptDTO get(Long id);

    /**
     * 插入部门信息
     *
     * @param dto 部门实体
     */
    void save(SysDeptDTO dto);

    /**
     * 更新部门信息
     *
     * @param dto 部门实体
     */
    void update(SysDeptDTO dto);

    /**
     * 删除部门信息
     *
     * @param id 部门主键ID
     */
    void delete(Long id);

    /**
     * 根据部门ID，获取本部门及子部门ID列表
     *
     * @param id 部门ID
     * @return 子部门ID列表
     */
    List<Long> getSubDeptIdList(Long id);
}